From 895e943360d56ef396c41ca1edddae188cd16bdd Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 19 Jan 2005 21:05:15 +0000 Subject: [PATCH] In save mode, don't return paths containing nonexisting directories. 2005-01-19 Matthias Clasen * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_should_respond): In save mode, don't return paths containing nonexisting directories. (#162443, Jean Marie Favreau) --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ gtk/gtkfilechooserdefault.c | 14 +++++++++++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 90793f3142..7f8098ba12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2005-01-19 Matthias Clasen + * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_should_respond): + In save mode, don't return paths containing nonexisting + directories. (#162443, Jean Marie Favreau) + * gtk/gtkobject.c (gtk_object_add_arg_type): Use GLib limit macros to avoid sparse warnings. Pointed out by Kjartan Maraas. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 90793f3142..7f8098ba12 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2005-01-19 Matthias Clasen + * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_should_respond): + In save mode, don't return paths containing nonexisting + directories. (#162443, Jean Marie Favreau) + * gtk/gtkobject.c (gtk_object_add_arg_type): Use GLib limit macros to avoid sparse warnings. Pointed out by Kjartan Maraas. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 90793f3142..7f8098ba12 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2005-01-19 Matthias Clasen + * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_should_respond): + In save mode, don't return paths containing nonexisting + directories. (#162443, Jean Marie Favreau) + * gtk/gtkobject.c (gtk_object_add_arg_type): Use GLib limit macros to avoid sparse warnings. Pointed out by Kjartan Maraas. diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 110da70ec9..91ba27d47c 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -5370,7 +5370,19 @@ gtk_file_chooser_default_should_respond (GtkFileChooserEmbed *chooser_embed) retval = FALSE; } else - retval = TRUE; + { + /* check that everything up to the last component exists */ + gtk_file_path_free (path); + path = gtk_file_path_copy (_gtk_file_chooser_entry_get_current_folder (entry)); + is_folder = check_is_folder (impl->file_system, path, NULL); + if (!is_folder) + { + change_folder_and_display_error (impl, path); + retval = FALSE; + } + else + retval = TRUE; + } gtk_file_path_free (path); return retval; -- 2.30.2